7.2 Typ reálne číslo
Tento typ slúži na prácu s ešte väčšími číslami ako boli celé čísla a navyše môže spracovávať aj desatinné čísla. Typ Real zaberá v pamäti 6 Bytov.
Var R : Real ;
Pascal uchováva reálne čísla vo forme tzv. pohyblivej rádovej čiarky, pričom rezervuje 1 bite na znamienko čísla (ak je kladné, potom 0 a pre záporné 1):
Mantisa * 10exponenta , kde
- 0 <= Abs(mantisa) < 10
- exponenta je celé číslo so znamienkom.
V Turbo Pascale ho zapíšeme nasledovne:
Mantisa[Exponenta]
Hranaté zátvorky znamenajú to, že časť exponenta môžeme vynechať, ak jej hodnota je 1.
Napr.:
4E5 | 400 000 |
2.5E3 | 2 500 |
1.5E-2 | 0.015 |
Nesprávne zadané reálne čísla:
.7 | nie je celá časť |
E4 | nie je mantisa |
1.8E38 | príliš veľké číslo - rozpätie je 2.9E-39 < | R | < 1.7E38 |
Sú aj ďalšie typy reálnych čísel (Single, Double, Extended, Comp) ale teraz sa s nimi zaoberať nebudeme.
Typ | Rozsah | Platné číslice | Počet Bytov |
real | 2.9*10-39 až 1.7*1038 | 11 - 12 | 6 |
single | 1.5*10-45 až 3.4*1038 | 7 - 8 | 4 |
double | 5.0*10-324 až 1.7*10308 | 15 - 16 | 8 |
extended | 3.4*10-4932 až 1.1*104932 | 19 - 20 | 10 |
comp | -263 + 1 až 263 - 1 | 19 - 20 | 8 |
Jedine typ comp sa nezobrazuje v pohyblivej ale v pevnej desatinnej čiarky a má rozsah približne -9.2*1018 až 9.2*1018. Rozsah ostatných typov sa chápe ako možné rozpätie kladných hodnôt, záporné majú ten istý rozsah len s mínusom a 0.
Operácie s reálnymi číslami:
+,- | znamienko - jednozložková operácia |
* | znamienko - dvojzložková operácia |
/ | delenie |
+ | sčítanie |
- | odčítanie |
Ak niektorá zo zložiek týchto operácií je reálne číslo, potom aj výsledok bude takým, okrem delenia. V prípade delenia výsledok je vždy reálnym číslom
Vážnejšie funkcie a podprogramy s reálnymi argumentmi:
Int(R) | funkcia celá časť, iba v tom sa líši od funkcie Trunc, že výsledok má typ Real. |
Abs(R) | funkcia absolútna hodnota čísla R. |
Sqr(R) | funkcia vracia druhú mocninu čísla R. |
Sqrt(R) | funkcia vracia druhú odmocninu čísla R. |
Pi | funkcia, vracajúca hodnotu Pi: 3.1415926536 |
Random(Hranica) | funkcia generujúca náhodné číslo
- ak hodnota Hranica je typu Word, potom hodnota výsledku bude celé číslo z intervalu [0,Hranica). 0 tam patrí a Hranica - nie.
- ak vynecháme parameter Hranica, potom výsledkom bude reálne číslo z intervalu [0,1).
Pred použitím tejto funkcie generátor náhodných čísel musíme inicializovať. Uvedieme príklad generovania náhodného celého čísla z intervalu [20,30].
Randomize ;
WriteLn(Random(30-20+1)+20) ;
|
Sin(R) | dobre známa funkcia sínusu z matematiky. Uhol musí byť zadaný v radiánoch. Uvedieme príklad so stupňami:
Stupen := 30 ;
Radian := Stupen*Pi/180 ; { Radián bude 0.523599 }
Sínus := Sin(R) ; { Sínus bude 0.5 }
|
Ln(R) | funkcia prirodzeného logaritmu z reálneho čísla |
Exp(R) | funkcia exponenciálnej funkcie so základom e=2,7... |
Poznámka. Turbo Pascal nemá špeciálnu funkciu vo všeobecnom tvare pre umocňovanie a odmocňovanie, ale dá sa to dosiahnuť pomocou posledných dvoch funkcií. Napr.:
AB = Exp(Ln(A)*B)
|